<script>
  // 输入：height = [0,1,0,2,1,0,1,3,2,1,2,1]
  // 输出：6
  // 解释：上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图，在这种情况下，可以接 6 个单位的雨水（蓝色部分表示雨水）。
  /**
   * @param {number[]} height
   * @return {number}
   */
  var trap = function (height) {
    let ans = 0;
    let l = 0,
      r = height.length - 1;
    let lMax = 0,
      rMax = 0;
    while (l < r) {
      lMax = Math.max(lMax, height[l]);
      rMax = Math.max(rMax, height[r]);
      if (height[l] < height[r]) {
        ans += lMax - height[l];
        l++;
      } else {
        ans += rMax - height[r];
        r--;
      }
    }
    return ans;
  };
</script>
